const app = getApp()
var timeCount = null
import { houseList, saleType, housePublicType, houseType, houseSmall, houseBig, houseStart, houseEnd } from "../../common/static/api_data.js"
import { HiddenCall } from '../../request/api'
const request = new HiddenCall
import { makePhoneCall } from "../../utils/http"
import tab_index from '../../mixins/tab_index'
import filter from '../../mixins/filter'
import formSubmit from '../../mixins/form_submit'
import { throttle } from '../../utils/throttle.js'
import lazyLoad from '../../utils/lazload.js'
let lazyload
Page({
  /**
*  房源列表
* - @author           狄兆璐
* - @date             2018-07-03
* houseList     房源搜索条件字典
* small            筛选获取最小值
* big               筛选获取最大值
* start             筛选获取时间初始值
* end              筛选获取时间结束值
* isHouse       是否为房源
* houseType  房源筛选条件户型
* housePublicType  房源状态
* housePageWhereVO  房源列表接口调用字段
* phoneNumber     拨打电话手机号
* searchData           筛选条件model
* houseSmall          房源筛选最小值
* houseBig              房源筛选最大值
* houseStart           房源筛选初始时间
* houseEnd             房源筛选结束时间
*/
  mixins: [tab_index, filter, formSubmit],
  data: {
    houseType,
    houseList,
    housePublicType,
    page: 1,
    housePageWhereVO: {},
    phoneNumber: app.globalData.phoneNumber,
    searchData: {},
    houseListImage: [],
    flag: 0,
    regionList: []
  },
  /**
   * 选择筛选条件区域
   */
  regionChange: function (e) {
    // 调用筛选组件事件
    // 获取选中的区域
    this.setData({
      regionList: e.detail.model,
      regionValue: e.detail.value.value
    })
  },
  onLoad: function (options) {
    // 隐藏导航栏dzl
    // this.hideNavBar()
    this.houseList({ "page": 1, "size": 21, "housePageWhereVO": {} }, 'loading')
    // 获取区域和屏幕高度
    this.getHeight()
    // lazyload = new lazyLoad(this, {
    //   classNote: '.item-',				//循环节点
    //   initNum: 21,						//初始化展示多少个节点
    //   limit: 21						//每次加载多少个节点
    // })
    // this.refreshView = this.selectComponent("#refreshView")
    wx.showNavigationBarLoading()
  },
  onReady() {
    // lazyload.observe()
  },
  onShow: function () {
    // 获取子组件构造器
    app.globalData.houseFilter = this.selectComponent("#houseSearch")
  },
  /**
   * 下拉刷新房源列表数据
   * author dzl
   */
  onPullDownRefresh() {
    // 重置页数
    wx.showNavigationBarLoading()
    this.setData({ page: 1})
    // 带着筛选条件刷新列表
    if (this.houseData !== undefined && Object.keys(this.houseData).length > 2) {
      this.houseData.page = 1
      this.houseData.size = 21
      this.houseList(this.houseData)
    } else {
      // 无筛选条件普通刷新列表
      this.houseList({
        "page": 1,
        "size": 21,
        "housePageWhereVO": {}
      })
    }
  },
  /**
   * 上拉加载房源列表操作
   * author　dzl
   */
  onReachBottom() {
    // 设置加载的页数
    wx.showNavigationBarLoading()
    this.data.page += parseInt(this.data.count)
    // 带着条件加载数据列表
    this.setData({ loading: true })
    if (this.houseData && Object.keys(this.houseData).length > 2) {
      this.houseData.page = this.data.page
      this.pullData(this.houseData)
    } else {
      // 无筛选条件加载普通列表
      this.pullData({
        "page": this.data.page,
        "size": 21,
        "housePageWhereVO": {}
      })
    }
  },
  /**
   * 上拉加载房源列表数据
   */
  pullData: function(model) {
    // 数据全部加载完数据之后，禁止调用接口
    let that = this
    if (this.data.data.content.length === this.data.data.count) {
      wx.hideNavigationBarLoading()
      return
    }
    // 获取到加载数据
    request.houseList(model).then(res => {
      // 循环往渲染model添加
      res.content.forEach(res => {
        this.data.data.content.push(res)
        // 赋值更新
        this.setData({
          data: this.data.data
        })
      })
      wx.hideNavigationBarLoading() 
      this.setData({ loading: false })
      // lazyload.observe()
    })
  },
  /**
   * 点击显示房源分享按钮
   * author dzl
   */
  shareBtn: function (e) {
    // 显示分享按钮赋予true
    this.setData({
      clickbtn: e.detail
    })
  },
  /**
   * 选中想要分享的房源列表数据
   * author dzl
   */
  bindchange: function (e) {
    // 点击拿到选中的值
    let houseCode = e.detail.value
  },
  /**
   * 关闭分享显示按钮
   * author dzl
   */
  cancelShare: function (e) {
    // 隐藏分享按钮
    this.setData({
      clickbtn: e.detail
    })
  },
  /**
   * 查询房源列表数据
   * author dzl
   */
  houseList: function (data, loading) {
    // 调用房源列表接口
    let that = this
    timeCount = setInterval(() => {
      this.data.flag += 1
      if (this.data.flag > 0) {
        that.setData({ animation: true })
      }
    }, 200)
    request.houseList(data).then(res => {
      // 有数据赋值更新渲染，获取页数
      if (res) {
        this.setData({
          data: res,
          count: res.page
        })
        wx.stopPullDownRefresh()
        wx.hideNavigationBarLoading()
        // 停止计算
        clearInterval(timeCount)
        timeCount = null
        that.setData({ animation: false })
      }
    }).catch((err) => {
      // 存储错误信息
      this.setData({
        errCode: err
      })
    })
  },
  /**
   * 点击搜索符合搜索条件的房源列表数据
   * author wl
   */
  searcHouse(e) {
    if (app.globalData.filterData) {
      this.setData({
        filterData: app.globalData.filterData
      })
    }
    // 是否有搜索条件，无给与对象
    this.houseData = e ? e.detail : {}
    // 设置页数和数量
    this.houseData.page = 1
    this.houseData.size = 21
    // 循环将筛选条件赋予搜索model
    this.searchPool(this.data.filterData, this.houseData)
    // 带着条件获取数据
    this.houseList(this.houseData)
    // 重置页数
    this.setData({ page: 1 })
  },
  /**
   * 进入房源筛选
   * author wl
   */
  filterbar() {
    wx.navigateTo({
      url: `../house_filter/index`
    })
  }
})